package com.javaai.project.ai;

import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.spring.AiService;
import dev.langchain4j.service.spring.AiServiceWiringMode;

@AiService(
        wiringMode = AiServiceWiringMode.EXPLICIT,
        chatModel = "qwenChatModel",
        chatMemoryProvider = "chatMemoryProvider",
        tools = "caculatorTools"
)
public interface SeperateAssistant {
    // SystemMessaged的内容只会发送给大模型一次。
    // @SystemMessage的内容将在后台转换为 `SystemMessage`对象，并与 `UserMessage` 一起发送给大语言模型（LLM）。
    // 如果要显示今天的日期，我们需要在提示词中添加当前日期的占位符{{current_date}}
    // current_date 是 LangChain4j 框架预定义的内置变量； 框架会自动识别这个变量名并将其替换为当前系统日期
    @SystemMessage(fromResource = "my-prompt-template.txt")
    String chat(@MemoryId int memoryId, @UserMessage String userMessage);
}
